package com.tensquare.chat.listen;
/*
 *ClassName:STOMPConnectEventListener
 *Description:监听类，此类的方法onApplicationEvent在用户连接时执行，可以获取用户的sessionID以及从前端传递过来的其它信息。
 *@author:可爱的大鸭子
 */

import com.tensquare.chat.ChatApplication;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.messaging.simp.stomp.StompHeaderAccessor;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.messaging.SessionConnectEvent;

@Component
public class STOMPConnectEventListener implements ApplicationListener<SessionConnectEvent> {

    @Autowired
    private SimpMessagingTemplate messagingTemplate;

    //当我点开私聊页面就进入聊天室
    @Override
    public void onApplicationEvent(SessionConnectEvent event) {
        StompHeaderAccessor sha = StompHeaderAccessor.wrap(event.getMessage());
        String userId = sha.getNativeHeader("from").get(0);    //这里就是其他信息
        String sessionId = sha.getSessionId();
        System.out.println("进入聊天室........"+userId+"-"+sessionId);
        //将获取到的用户信息保存到静态变量聊天室中
        ChatApplication.sessionMap.put(userId,sessionId);

    }
}